# from app import app语句从app包导入其成员app变量
from app import app, db
from app.models import User, Post
import sys
sys.path.append('.')
# 在定义Flask应用程序实例的顶层
# 项目目录下（译者注：也就是microblog目录下），创建一个命名为microblog.py的Python脚本

# 添加数据库实例和模型来创建了一个shell上下文环境
# app.shell_context_processor装饰器将该函数注册为一个shell上下文函数
# flask shell命令运行时，它会调用这个函数并在shell会话中注册它返回的项目。 
# 函数返回一个字典而不是一个列表，原因是对于每个项目，你必须通过字典的键提供一个名称以便在shell中被调用。
# 在添加shell上下文处理器函数后，你无需导入就可以使用数据库实例：
@app.shell_context_processor
def make_shell_context():
    return {'db': db, 'User': User, 'Post': Post}

if __name__ == "__main__":
    app.run()